package com.sojson.util.kd.kdn.bean;

import java.util.List;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sojson.base.impl.BaseUtilDto;
import com.sojson.result.bean.Status;
import com.sojson.util.kd.kdn.bean.child.response.KdnResShippers;
import com.sojson.util.kd.kdn.bean.child.response.KdnResTraces;

/**
 * 快递鸟接口响应Bean
 * 
 * @author liu
 * @date 2021-04-01
 */
public class KdnResponse extends BaseUtilDto {

    /***/
    private static final long serialVersionUID = 2614432504300894700L;

    /**
     * 用户ID,快递鸟提供,注意保管,不要泄漏<BR/>
     * 请到快递鸟官网申请http://www.kdniao.com/ServiceApply.aspx<BR/>
     */
    private String eBusinessID;
    /** 订单编号 */
    private String orderCode;
    /** 快递公司编码 */
    private String shipperCode;
    /** 快递单号 */
    private String logisticCode;
    /** 成功与否(true:成功/false:失败) */
    private Boolean success;
    /** 失败原因 */
    private String reason;
    /** 物流状态(0:暂无轨迹信息,1:已揽收,2:在途中,3:签收,4:问题件) */
    private String state;
    /** 更新时间(YYYY-MM-DD HH24:MM:SS) */
    private String updateTime;
    /** 订单预计到达时间(YYYY-MM-DD HH24:MM:SS,暂未上线) */
    private String estimatedDeliveryTime;
    /** 失败原因 */
    private Integer code;
    /** 轨迹 */
    private List<KdnResTraces> traces;
    /** 快递公司 */
    private List<KdnResShippers> shippers;
    /** 状态信息 */
    private Status cusStatus;

    /**
     * 获取用户ID,快递鸟提供,注意保管,不要泄漏<BR/>
     * 请到快递鸟官网申请http://www.kdniao.com/ServiceApply.aspx<BR/>
     * 
     * @return
     */
    public String geteBusinessID() {
        return eBusinessID;
    }

    /**
     * 设置用户ID,快递鸟提供,注意保管,不要泄漏<BR/>
     * 请到快递鸟官网申请http://www.kdniao.com/ServiceApply.aspx<BR/>
     * 
     * @param eBusinessID
     */
    @JsonProperty("EBusinessID")
    @JSONField(name = "EBusinessID")
    public void seteBusinessID(String eBusinessID) {
        this.eBusinessID = eBusinessID;
    }

    /**
     * 获取订单编号
     * 
     * @return
     */
    public String getOrderCode() {
        return orderCode;
    }

    /**
     * 设置订单编号
     * 
     * @param orderCode
     */
    @JsonProperty("OrderCode")
    @JSONField(name = "OrderCode")
    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    /**
     * 获取快递公司编码
     * 
     * @return
     */
    public String getShipperCode() {
        return shipperCode;
    }

    /**
     * 设置快递公司编码
     * 
     * @param shipperCode
     */
    @JsonProperty("ShipperCode")
    @JSONField(name = "ShipperCode")
    public void setShipperCode(String shipperCode) {
        this.shipperCode = shipperCode;
    }

    /**
     * 获取快递单号
     * 
     * @return
     */
    public String getLogisticCode() {
        return logisticCode;
    }

    /**
     * 设置快递单号
     * 
     * @param logisticCode
     */
    @JsonProperty("LogisticCode")
    @JSONField(name = "LogisticCode")
    public void setLogisticCode(String logisticCode) {
        this.logisticCode = logisticCode;
    }

    /**
     * 获取成功与否(true:成功/false:失败) 
     * 
     * @return
     */
    public Boolean getSuccess() {
        return success;
    }

    /**
     * 设置成功与否(true:成功/false:失败) 
     * 
     * @param success
     */
    @JsonProperty("Success")
    @JSONField(name = "Success")
    public void setSuccess(Boolean success) {
        this.success = success;
    }

    /**
     * 获取失败原因
     * 
     * @return
     */
    public String getReason() {
        return reason;
    }

    /**
     * 设置失败原因
     * 
     * @param reason
     */
    @JsonProperty("Reason")
    @JSONField(name = "Reason")
    public void setReason(String reason) {
        this.reason = reason;
    }

    /**
     * 获取物流状态(0:暂无轨迹信息,1:已揽收,2:在途中,3:签收,4:问题件)
     * 
     * @return
     */
    public String getState() {
        return state;
    }

    /**
     * 设置物流状态(0:暂无轨迹信息,1:已揽收,2:在途中,3:签收,4:问题件)
     * 
     * @param state
     */
    @JsonProperty("State")
    @JSONField(name = "State")
    public void setState(String state) {
        this.state = state;
    }

    /**
     * 获取更新时间(YYYY-MM-DD HH24:MM:SS)
     * 
     * @return
     */
    public String getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置更新时间(YYYY-MM-DD HH24:MM:SS)
     * 
     * @param updateTime
     */
    @JsonProperty("UpdateTime")
    @JSONField(name = "UpdateTime")
    public void setUpdateTime(String updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取订单预计到达时间(YYYY-MM-DD HH24:MM:SS,暂未上线)
     * 
     * @return
     */
    public String getEstimatedDeliveryTime() {
        return this.estimatedDeliveryTime;
    }

    /**
     * 设置订单预计到达时间(YYYY-MM-DD HH24:MM:SS,暂未上线)
     * 
     * @param estimatedDeliveryTime
     */
    @JsonProperty("EstimatedDeliveryTime")
    @JSONField(name = "EstimatedDeliveryTime")
    public void setEstimatedDeliveryTime(String estimatedDeliveryTime) {
        this.estimatedDeliveryTime = estimatedDeliveryTime;
    }

    /**
     * 获取失败原因
     * 
     * @return
     */
    public Integer getCode() {
        return code;
    }

    /**
     * 设置失败原因
     * 
     * @param code
     */
    @JsonProperty("Code")
    @JSONField(name = "Code")
    public void setCode(Integer code) {
        this.code = code;
    }

    /**
     * 获取轨迹
     * 
     * @return
     */
    public List<KdnResTraces> getTraces() {
        return traces;
    }

    /**
     * 设置轨迹
     * 
     * @param traces
     */
    @JsonProperty("Traces")
    @JSONField(name = "Traces")
    public void setTraces(List<KdnResTraces> traces) {
        this.traces = traces;
    }

    /**
     * 获取快递公司
     * 
     * @return
     */
    public List<KdnResShippers> getShippers() {
        return shippers;
    }

    /**
     * 设置快递公司
     * 
     * @param shippers
     */
    @JsonProperty("Shippers")
    @JSONField(name = "Shippers")
    public void setShippers(List<KdnResShippers> shippers) {
        this.shippers = shippers;
    }

    /** 获取状态信息 */
    public Status getCusStatus() {
        return cusStatus;
    }

    /** 设置状态信息 */
    public void setCusStatus(Status cusStatus) {
        this.cusStatus = cusStatus;
    }

}
